package enumandlambda;

/**
 * @author shkstart
 * 懒汉模式版本3
 * @create 2022-12-09-20:16
 */
public class DataSourceSingleton3 {


    //1.私有的构造方法
    private DataSourceSingleton3() {
    }
    //2.私有属性
    private static volatile DataSourceSingleton3 dataSource = null;

    //3.公共的方法，得到单例对象
    public static DataSourceSingleton3 getInstance() {
        if (dataSource == null) {//大致分流状态
            synchronized (DataSourceSingleton3.class) {//排队执行
                if (dataSource == null) {//精细化的判断（分流）
                    dataSource = new DataSourceSingleton3();
                }
            }
        }
        return dataSource;
    }

}
